package com.bjut.vendormgrsys.web.dto.other;

import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.validation.annotation.Validated;

/**
 * ResumeSearchQueryFilter
 */
@Validated


public class ResumeSearchQueryFilter   {
  @JsonProperty("keyword")
  private String keyword = null;

  @JsonProperty("name")
  private String name = null;

  @JsonProperty("mobile")
  private String mobile = null;

  @JsonProperty("status")
  private String status = null;

  @JsonProperty("positionId")
  private String positionId = null;

  @JsonProperty("positionName")
  private String positionName = null;

  @JsonProperty("email")
  private String email = null;

  @JsonProperty("deliverDate")
  private String deliverDate = null;

  public ResumeSearchQueryFilter keyword(String keyword) {
    this.keyword = keyword;
    return this;
  }

  /**
   * Get keyword
   * @return keyword
   **/
  @Schema(description = "")
  
    public String getKeyword() {
    return keyword;
  }

  public void setKeyword(String keyword) {
    this.keyword = keyword;
  }

  public ResumeSearchQueryFilter name(String name) {
    this.name = name;
    return this;
  }

  /**
   * Get name
   * @return name
   **/
  @Schema(description = "")
  
    public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public ResumeSearchQueryFilter mobile(String mobile) {
    this.mobile = mobile;
    return this;
  }

  /**
   * Get mobile
   * @return mobile
   **/
  @Schema(description = "")
  
    public String getMobile() {
    return mobile;
  }

  public void setMobile(String mobile) {
    this.mobile = mobile;
  }

  public ResumeSearchQueryFilter status(String status) {
    this.status = status;
    return this;
  }

  /**
   * Get status
   * @return status
   **/
  @Schema(description = "")
  
    public String getStatus() {
    return status;
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public ResumeSearchQueryFilter positionId(String positionId) {
    this.positionId = positionId;
    return this;
  }

  /**
   * Get positionId
   * @return positionId
   **/
  @Schema(description = "")
  
    public String getPositionId() {
    return positionId;
  }

  public void setPositionId(String positionId) {
    this.positionId = positionId;
  }

  public ResumeSearchQueryFilter positionName(String positionName) {
    this.positionName = positionName;
    return this;
  }

  /**
   * Get positionName
   * @return positionName
   **/
  @Schema(description = "")
  
    public String getPositionName() {
    return positionName;
  }

  public void setPositionName(String positionName) {
    this.positionName = positionName;
  }

  public ResumeSearchQueryFilter email(String email) {
    this.email = email;
    return this;
  }

  /**
   * Get email
   * @return email
   **/
  @Schema(description = "")
  
    public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public ResumeSearchQueryFilter deliverDate(String deliverDate) {
    this.deliverDate = deliverDate;
    return this;
  }

  /**
   * Get deliverDate
   * @return deliverDate
   **/
  @Schema(description = "")
  
    public String getDeliverDate() {
    return deliverDate;
  }

  public void setDeliverDate(String deliverDate) {
    this.deliverDate = deliverDate;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ResumeSearchQueryFilter resumeSearchQueryFilter = (ResumeSearchQueryFilter) o;
    return Objects.equals(this.keyword, resumeSearchQueryFilter.keyword) &&
        Objects.equals(this.name, resumeSearchQueryFilter.name) &&
        Objects.equals(this.mobile, resumeSearchQueryFilter.mobile) &&
        Objects.equals(this.status, resumeSearchQueryFilter.status) &&
        Objects.equals(this.positionId, resumeSearchQueryFilter.positionId) &&
        Objects.equals(this.positionName, resumeSearchQueryFilter.positionName) &&
        Objects.equals(this.email, resumeSearchQueryFilter.email) &&
        Objects.equals(this.deliverDate, resumeSearchQueryFilter.deliverDate);
  }

  @Override
  public int hashCode() {
    return Objects.hash(keyword, name, mobile, status, positionId, positionName, email, deliverDate);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ResumeSearchQueryFilter {\n");
    
    sb.append("    keyword: ").append(toIndentedString(keyword)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    mobile: ").append(toIndentedString(mobile)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    positionId: ").append(toIndentedString(positionId)).append("\n");
    sb.append("    positionName: ").append(toIndentedString(positionName)).append("\n");
    sb.append("    email: ").append(toIndentedString(email)).append("\n");
    sb.append("    deliverDate: ").append(toIndentedString(deliverDate)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}
